This invention generally relates to digital data processing systems. More specifically it relates the interconnection of various units in such a system and the transfer of data among those units.
A digital data processing system comprises three basic elements: namely, a memory element, an input-output element and a processor element. The memory element stores information in addressable storage locations. This information includes data and instructions for processing the data. The processor element transfers information to and from the memory element, interprets the incoming information as either data or instructions and processes data in accordance with the instructions. The input-output element also communicates with the memory element in order to transfer input data to the system and to obtain processed data from it.
Over the years many different types of digital data processing systems have been developed. However, this development primarily has been directed toward evolving new processor elements with more efficient architecture, larger and faster memory elements and more sophisticated input-output elements. There has been little change in the technology involved in transferring information among the various elements in the data processing system. In fact, all the data processing systems of which we are aware can be classified by the basic timing methods that they use. There are essentially two timing categories: synchronous and asynchronous timing.
Digital data processing systems that utilize synchronous timing usually include a master clock that controls all operations in all elements. This master clock generates timing signals that control operations in the processor element and also in the memory and input-output elements that connect to an interconnecting bus. As all the elements in the system are synchronized to the master clock, the master clock frequency must be set to operate in a way that is compatible with the slowest element in the system. The transfer rates between elements impose ultimate limitations on the speeds with which the faster elements can operate. Thus a slow transfer rate slows the entire system so that the system runs below the theoretical efficiency of many of its component units.
Other digital data processing systems utilize asynchronous timing over their interconnections. With asynchronous timing each element is free to operate at its most efficient rate. Typically two elements communicate with each other when one element initiates a data transfer over an interconnecting bus. Then the one element controls the bus to the exclusion of all third elements in the system until the other element acknowledges that the requested transfer has been completed. Systems using asynchronous timing tend to be somewhat faster than their counterpart synchronous systems because they can make some transfers at a greater rate than the slowest element in the system, while maintaining the ability to communcicate more slowly with the slower elements. However, asynchronous transfers do have drawbacks in some applications. In some asynchronous systems, once a transfer operation has been initiated, the entire bus is unavailable to any elements other than the two involved in the transfer until that transfer is completed. Thus transfers involving slower elements hold up operation of the faster elements and reduce their efficiencies below their theoretical levels.
Despite the drawbacks of both synchronous and asynchronous transfers, most digital data processing systems still are built solely around either one or the other, but not both timing schemes. The selection of one over the other apparently depends upon the predicted applications for the digital data processing system. Thus, in some applications unacceptable operating speeds may be encountered while in others the speeds are acceptable.
Therefore, it is an object of this invention to provide an interconnection for the elements of a digital data processing system that utilizes the desirable characteristics of both synchronous and asynchronous timing.
Another object of this invention is to provide an interconnection for the elements of a digital data processing system that enables the elements to communicate over the interconnection at very high speeds.
Yet another object of this invention is to provide a digital data processing system in which the elements exchange information efficiently and without unduly delaying information exchanges among other elements in the system.